package com.app.ryjy.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 证件类型枚举
 */
@AllArgsConstructor
@Getter
public enum IdentityTypeEnum {
    // 居民身份证(户口簿)
    ID_CARD_HOUSEHOLD_REGISTER("居民身份证(户口簿)", "01", -1),
    // 中国人民解放军军官证
    OFFICER_IDENTITY_CARD_OF_THE_PEOPLES_LIBERATION_ARMY("中国人民解放军军官证", "02", -1),
    // 中国人民武装警察警官证
    POLICE_OFFICER_IDENTITY_CARD_OF_THE_PEOPLES_ARMED_POLICE("中国人民武装警察警官证", "03", -1),
    // 香港特区护照/港澳居民来往内地通行证
    HONG_KONG_SAR_PASSPORT_MACAU_SAR_PASS_OR_MAINLAND_TRAVEL_PERMIT("香港特区护照/港澳居民来往内地通行证", "04", -1),
    // 澳门特区护照/港澳居民来往内地通行证
    MACAU_SAR_PASSPORT_MACAU_SAR_PASS_OR_MAINLAND_TRAVEL_PERMIT("澳门特区护照/港澳居民来往内地通行证", "05", -1),
    // 台湾居民来往大陆通行证
    TAIWAN_RESIDENT_MAINLAND_TRAVEL_PERMIT("台湾居民来往大陆通行证", "06", -1),
    // 外国人永久居留证
    FOREIGNER_PERMANENT_RESIDENCE_CARD("外国人永久居留证", "07", -1),
    // 外国人护照
    FOREIGNER_PASSPORT("外国人护照", "08", -1),
    // 残疾人证
    DISABLED_PERSON_CARD("残疾人证", "09", -1),
    // 军烈属证明
    MILITARY_MARTYRS_CERTIFICATE("军烈属证明", "10", -1),
    // 外国人就业证
    FOREIGNER_EMPLOYMENT_CARD("外国人就业证", "11", -1),
    // 外国专家证
    FOREIGN_EXPERT_CARD("外国专家证", "12", -1),
    // 外国人常驻记者证
    FOREIGN_CORRESPONDENT_CARD("外国人常驻记者证", "13", -1),
    // 台港澳人员就业证
    GREATER_CHINA_REGION_EMPLOYEE_CARD("台港澳人员就业证", "14", -1),
    // 回国（来华）定居专家证
    RETURNEE_SETTLEMENT_CARD("回国（来华）定居专家证", "15", -1),
    // 社会保障卡
    SOCIAL_SECURITY_CARD("社会保障卡", "90", -1),
    // 其他身份证证件
    OTHER_IDENTITY_DOCUMENTS("其他身份证证件", "99", -1);

    private final String desc;
    private final String code;
    private final int bizCode;

    /**
     * 根据 bizCode 获取 code
     *
     * @param bizCode bizCode
     * @return code
     */
    public static String getCodeByBizCode(int bizCode) {
        for (IdentityTypeEnum identityType : values()) {
            if (identityType.getBizCode() == bizCode) {
                return identityType.getCode();
            }
        }
        throw new RuntimeException("bizCode 不存在");
    }

    public static void main(String[] args) {
        System.out.println(IdentityTypeEnum.getCodeByBizCode(1));
    }
}